1. Field of the Invention
The present invention relates to a computer system and, more particularly, to identification of features of a computer system to software executing on the computer system.
2. Description of the Related Art
Computer systems are known to include a variety of different hardware features. These hardware features also tend to be implemented differently in different computers (even from the same company). However, conventional software executing on the computers must understand not only the hardware features present but also how the hardware features are implemented in order to interact with the hardware features. One type of software that often interacts with hardware features of a computer system is known as system management software which monitors and controls the computer system to reduce system crashes or catastrophic failures or to improve performance.
Hardware features include many different apparatuses within a computer system. A few examples of hardware features are: fans, DC-DC converters, power supplies, thermal trip sensor, bus monitors, and the like. Different computer systems have different hardware features which are implemented differently. Although in subsequent versions of the same computer system the hardware features present tend to be the same, these hardware features can be implemented differently in the various versions of the same computer system. For example, computer systems generally include a fan for cooling purposes. However, some computer systems include multiple required fans, and other computer systems may include multiple fans some of which are redundant (i.e., not required).
Hence, with each different computer system, not only are the hardware features provided usually different, but also the placement of the hardware features and hardware for accessing the hardware features that are common tends to be different. Even with subsequent versions of the same computer system, occasionally some of the hardware features are placed differently and/or use different hardware for accessing the hardware features.
Nevertheless, in order for system software to properly monitor the operation of the computer system and its hardware features, the system software needs to know what features are provided in the computer system. A number of different techniques have been used in recent years to inform the software of the features provided by the computer system.
One conventional approach is to provide a table within the system software that would identify each machine on which the software could be executed. The major disadvantages of this approach were that the number of tables in the software grew exponentially in order to handle all the existing machines on which the software could be executed, and that the software was not operational on new machines.
Another conventional approach is to provide a read only memory (ROM) within the computer system to describe the hardware features of the computer system. The system software was then able to access the ROM and obtain some limited information on the hardware features of the computer system. This approach is effective so long as the software supports the features of the computer system. One problem with this approach is that the size of the ROM, even though typically describing features of only a single computer system, grows exponentially to handle the myriad of different implementations that develop with subsequent versions of the computer system. With each different implementation the software assumed a particular way to access the needed signals from the hardware features. The hardware of the computer system was then thereafter fixed with that particular way of accessing the hardware feature. However, if the access to the hardware features were to be changed for a different implementation, the software would fail unless the ROM had been specially updated to include a specific description of the different implementation. FIG. 1 is a diagram of a ROM table according to this conventional approach.
More particularly, FIG. 1 is a diagram of a simplified ROM table 100 that provides hardware feature information for a computer system. Here, the particular feature is a fan and the bits of the ROM table 100 identify whether the fan is supported by the computer system, whether the fan is a redundant fan, and then provides additional information that is specific to the implementation of the computer system, namely machine-w, machine-x, machine-y, and machine-z. For example, if the six (6) bits of the ROM 100 were "110010", this would signal the software that the fan is provided in the computer system, is a redundant fan, and follows a machine specific implementation for machine-Z. The software then assumes how to access the fan based on the machine specific implementation for machine-Z. The required support for the system software to produce and maintain all of the machine specific implementations is overly burdensome.
Another approach to inform software of features of a computer system is illustrated in a simplified ROM table 200 illustrated in FIG. 2. In the ROM table 200, information about a DC-DC converter feature of a computer system is provided. In the ROM table 200 the information provided indicates the board type, board slot, number of converters (provided, necessary), scan chain bytes, and status chain bits for status and presence information. For example, the information provided in the first row in the ROM table 200 indicates that the particular DC--DC converter is a processor board type in slot 6; that there are three (3) DC--DC converters provided of which one (1) is necessary; and that the presence and status information are obtained from bits 3 and 4 of byte 7 in a scan chain. Although some information was provided for locating status and presence information of specific features, the mechanisms used to acquire the status and presence information were fixed. Further, software maintenance was still burdensome even under this approach because the access mechanism was fixed and because the mechanism information was provided only for this specific feature and not provided on a global basis.
Thus, there is a need for improved techniques for facilitating identification of hardware features of computer systems to software such that the software is able to access the hardware features.